<?php

namespace KGK\StoreBundle\Controller;

use Symfony\Component\DependencyInjection\ContainerAware;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use KGK\StoreBundle\Entity\Produit;
use KGK\StoreBundle\Form\ProduitForm;

class ProduitController extends ContainerAware
{
    public function listerAction()
    {
		$em = $this->container->get('doctrine')->getEntityManager();
		$produit = $em->getRepository('KGKStoreBundle:Produit')->findAll();

		return $this->container->get('templating')->renderResponse('KGKStoreBundle:Produit:lister.html.twig',array(
		 'produit' => $produit)
	);
    }
	
	public function editerAction($id = null)
    {
		$message='';
		$mode='';
		$em = $this->container->get('doctrine')->getEntityManager();
		
		if (isset($id)) //On est dans le cas de l'update
		{		
			$produit = $em->find('KGKStoreBundle:Produit', $id);
			$mode='Editer ';
			
			if (!$produit)
			{
				$message='Aucun produit trouvé';
			}
		}
		else //On est dans le cas du create
		{
			
			$produit = new Produit();
			$mode='Créer ';
		}

		$form = $this->container->get('form.factory')->create(new ProduitForm(), $produit);

		$request = $this->container->get('request');

		if ($request->getMethod() == 'POST') 
		{
				$form->bindRequest($request);

		if ($form->isValid()) 
		{
			$em->persist($produit);
			$em->flush();
			if (isset($id)) 
			{
				$message='Produit modifié avec succès !';
			}
			else 
			{
				$message='Produit ajouté avec succès !';
			}
		}
		}

		return $this->container->get('templating')->renderResponse(
		'KGKStoreBundle:Produit:editer.html.twig',
		array(
		'form' => $form->createView(),
		'message' => $message,
		'mode' => $mode,
		));
    }
	
    public function supprimerAction($id)
    {
		$em = $this->container->get('doctrine')->getEntityManager();
		$produit = $em->find('KGKStoreBundle:Produit', $id);
		
		if (!$produit) 
		{
			throw new NotFoundHttpException("Produit non trouvé");
		}
				
		$em->remove($produit);
		$em->flush();        


		return new RedirectResponse($this->container->get('router')->generate('KGK_produit_lister'));
    }
	
	public function listerProduitAction($id)
    {
		$em = $this->container->get('doctrine')->getEntityManager();
		$produit = array(); 
		$produit[0] = $em->getRepository('KGKStoreBundle:Produit')->find($id);
		
		if (!$produit) 
		{
			throw new NotFoundHttpException("Produit non trouvé");
		}
		
		return $this->container->get('templating')->renderResponse('KGKStoreBundle:Produit:lister.html.twig',array(
		 'produit' => $produit));
	}
	
		public function listerProduitParCategorieAction($id)
    {
		$em = $this->container->get('doctrine')->getEntityManager();
		$produit = $em->getRepository('KGKStoreBundle:Produit')->findByCat($id);
		
		if (!$produit) 
		{
			throw new NotFoundHttpException("Produit non trouvé");
		}
		
		return $this->container->get('templating')->renderResponse('KGKStoreBundle:Produit:lister.html.twig',array(
		 'produit' => $produit));
	}
}